﻿namespace NuGetCop.MSBuild.Tasks.Contracts
{
    using System;
    using System.Collections.Generic;
    using System.Diagnostics.Contracts;
    using NuGetCop.MSBuild.Tasks;

    [ContractClassFor(typeof(INuGetPackageCheckResultAggregator))]
    internal abstract class ContractForINuGetPackageCheckResultAggregator : INuGetPackageCheckResultAggregator
    {
        private ContractForINuGetPackageCheckResultAggregator()
        {
        }

        public INuGetPackageCheckResult Aggregate(
            ICollection<INuGetPackageCheckResult> checkResults,
            INuGetPackageRepository packageRepository)
        {
            Contract.Requires(checkResults != null);
            Contract.Requires(packageRepository != null);
            Contract.Ensures(Contract.Result<INuGetPackageCheckResult>() != null);

            throw new NotImplementedException();
        }
    }
}